package com.aiju.cash.core.api;

import com.aiju.app.config.ConfigManager;
import com.aiju.bean.User;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;

/**
 * @author: 佐为
 * @date: 2016-12-07 15:03
 * @version: V1.0
 * @Description: 流水
 */
public class BlotterApi {

    private String blotterList = ConfigManager.INIT_SERVER_HOST + "/deal/list";
    private String get = ConfigManager.INIT_SERVER_HOST + "/deal/get";
    private String getBySerialNum = ConfigManager.INIT_SERVER_HOST + "/deal/getBySerialNum";
    private String queryShopList = ConfigManager.INIT_SERVER_HOST + "/shop/queryShopList";//店铺列表
    private String queryClerkList = ConfigManager.INIT_SERVER_HOST + "/user/queryClerkList";//店员列表
    private String queryDealStatistics = ConfigManager.INIT_SERVER_HOST + "/deal/queryDealStatistics";//店铺列表接口

    /**
     * 流水列列表
     *
     * @param token      令牌
     * @param storeId    店铺编号
     * @param currentNum 当前页
     * @param currentNum 每一页显示个数
     * @param operatorId 操作员编号，不传默认查所有（店主和店员）
     */
    public void blotterList(String storeId, String token, String currentNum, String pageSize, String operatorId, StringCallback callback) {
        OkHttpUtils
                .post()
                .url(blotterList)
                .addParams("storeId", storeId)
                .addParams("token", token)
                .addParams("currentNum", currentNum)
                .addParams("pageSize", pageSize)
                .addParams("operatorId", operatorId)
                .build()
                .execute(callback);
    }

    /**
     * 流水详情
     *
     * @param token 令牌
     * @param id    唯一标识
     */
    public void blotterGet(String id, String token, StringCallback callback) {
        OkHttpUtils
                .post()
                .url(get)
                .addParams("id", id)
                .addParams("token", token)
                .build()
                .execute(callback);
    }

    /**
     * 店铺列表
     *
     * @param user
     */
    public void queryShopList(User user, StringCallback callback) {
        OkHttpUtils
                .post()
                .url(queryShopList)
                .addParams("storeId", user.getStoreId())
                .addParams("role", user.getRole())
                .addParams("token", user.getToken())
                .build()
                .execute(callback);
    }

    /**
     * 店员列表
     *
     * @param user
     * @param queryStoreId 所勾选的店铺编号 ，如果选择全部店铺，则传空字符串就ok了
     */
    public void queryClerkList(User user, String queryStoreId, StringCallback callback) {
        OkHttpUtils
                .post()
                .url(queryClerkList)
                .addParams("storeId", user.getStoreId())
                .addParams("role", user.getRole())
                .addParams("token", user.getToken())
                .addParams("queryStoreId", queryStoreId)
                .build()
                .execute(callback);
    }

    /**
     * 店铺列表
     * storeId	是	string	(当前登录用户)店铺编号
     * role	是	string	(当前登录用户)角色（0 总店长，1店长，2店员）
     * queryStoreId	是	string	(查询条件中)店铺编号，如果不选，默认全部，传空字符串就ok了
     * operatorId	是	string	(查询条件中)操作员编号
     * date	是	string	(查询条件中)传值说明：近七天：nearly7，今日：today，昨日：yesterday，本周：thisweek，本月：thismonth，上月：lastweek,自定义时间段： yyyy-MM-dd,yyyy-MM-dd （自定义时间段用逗号分隔）
     * payType	是	string	(查询条件中)交易渠道（支付宝，微信，现金，二维码台卡），直接传值汉字就ok了 ，多个查询条件以逗号分隔
     * tradeType	是	string	(查询条件中)交易类别，值为1或者2（1 收款，2 退款） 多个查询条件以逗号分隔
     * currentNum	是	string	当前页
     * pageSize	是	string	n条/页
     * token	是	string	令牌
     */
    public void queryDealStatistics(User user, String queryStoreId, String operatorId, String date, String payType, String tradeType, String currentNum,
                                    String pageSize, StringCallback callback) {
        OkHttpUtils
                .post()
                .url(queryDealStatistics)
                .addParams("storeId", user.getStoreId())
                .addParams("role", user.getRole())
                .addParams("queryStoreId", queryStoreId)
                .addParams(" ", operatorId)
                .addParams("date", date)
                .addParams("payType", payType)
                .addParams("tradeType", tradeType)
                .addParams("currentNum", currentNum)
                .addParams("pageSize", pageSize)
                .addParams("token", user.getToken())
                .build()
                .execute(callback);
    }

}
